package com.xiaolin.exception;

import org.springframework.util.StringUtils;

/**
 * @ClassName MyExceptionTest
 * @Description 描述
 * @Detail detail
 * @Author MyPC
 * @Date 2020/11/30
 * @Version 1.0
 */
public class MyExceptionTest {
    public static void main(String[] args) {
        try {
            hello("");
        } catch (MyException e) {  // 捕获 MyException 类型的异常
            // 处理异常
            // 异常抛出的轨迹
            e.printStackTrace();
            // 获取异常信息
            System.err.println(e.getMessage());
            // 本质调用了 e.getMessage() 方法
            System.err.println(e.getLocalizedMessage());
        }finally {
            // 最后的工作，如资源的关闭
            System.out.println("关闭资源");
        }
    }

    /**
     * 抛出普通的自定义异常时，必须在方法处进行声明
     * @param name
     * @throws MyException
     */
    public static void hello(String name) throws MyException {  // throws声明方法有可能抛出的异常，自己不做处理
        if(StringUtils.isEmpty(name)){
            throw new MyException("空异常");  // throw 用于抛出一个异常
        }
    }
}
